package com.ruoyi.project.manage.project.service;

import com.ruoyi.project.manage.project.domain.Project;

import java.util.List;
import java.util.Map;

/**
 * 项目统计Service接口
 * 
 * @author fangkun
 * @date 2022-03-28
 */
public interface IProjectStatService
{
    /**
     * 项目总数统计
     * @return
     */
    int getAllCount();

    /**
     * 项目区域数量统计
     * @return
     */
    List<Map> getAreaCount();

    /**
     * 投资建设资金情况统计
     * @return
     */
    Map getAllInvest();

    /**
     * 区域 投资建设资金情况统计
     * @return
     */
    List<Map> getAreaInvest();

    /**
     * 项目类型统计/投资额分布情况
     * @return
     */
    List<Map> getAllType(boolean needArea, Project param);

    /**
     * 建设性质统计
     * @return
     */
    List<Map> getAllConstructionType(boolean needArea);

    /**
     * 项目阶段情况统计
     * @return
     */
    List<Map> getAllStage(boolean needArea);

    /**
     * 七大产业集群统计
     * @return
     */
    List<Map> getAllIndustryByType(boolean needArea);

    /**
     * “三个一批”项目统计
     * @return
     */
    List<Map> getAllProgress(boolean needArea);

    /**
     * 各区项目数量统计
     * @return
     */
    int getAreasCount(Integer projectArea);

    /**
     * 各区投资建设资金情况统计
     * @return
     */
    Map getAreasInvest(Integer projectArea);

    /**
     * 各区项目类型统计/投资额分布情况
     * @return
     */
    List<Map> getAreasType(Integer projectArea);

    /**
     * 各区建设性质统计
     * @return
     */
    List<Map> getAreasConstructionType(Integer projectArea);

    /**
     * 各区项目阶段情况统计
     * @return
     */
    List<Map> getAreasStage(Integer projectArea);

    /**
     * 各区七大产业集群统计
     * @return
     */
    List<Map> getAreasIndustryByType(Integer projectArea);

    /**
     * 各区“三个一批”项目统计
     * @return
     */
    List<Map> getAreasProgress(Integer projectArea);

    /**
     * 获取项目明细数据
     * @param project
     * @return
     */
    List<Map> getAreasProject(Project project);
}
